1. Field of the Invention
The present invention relates to color and image management systems for use in transforming and maintaining color and image fidelity in personal computing systems as well as non-PC systems, such as cash registers or the like, and in particular the invention relates to configuration and generation of such color and image management systems based on a modularized architecture.
2. Description of the Related Art
One important emphasis in today""s computing equipment is maintenance of good color fidelity for a color image, even when the color image is obtained, viewed, and reproduced using a variety of different computer equipment. For example, good color fidelity is required when obtaining an image using a scanner or digital camera, when viewing the image on a monitor, and when printing the image on a color printer.
Computerized color and image management systems have been developed for this purpose. One job of such color and image management systems is to manage color transformations across devices, so as to ensure good color fidelity of a color image when displayed, obtained, or reproduced by different devices.
One difficulty in designing such systems is that each system tends to be specifically tailored for one type of device and one computing system. For example, a first color and image management system used to print color images that have been viewed on a personal computer""s monitor will be tailored to the operating environment of the personal computer, as well as to the color characteristics of the monitor and the printer. Thus, this first color and image management system will be completely unusable in a different operating environment, such as one including a hand-held personal digital assistant, which prints images viewed on an LCD screen. A second color and image management system for such an environment would need to be designed and built, specifically tailored for color transformation from an LCD screen to a color printer.
Moreover, such a second system must compensate for the limited memory and processing power provided by the hand-held PC. Accordingly, a developer of such a second system must be well versed in color processing techniques in order to develop a second system which performs necessary processing while maintaining a desirable trade-off between processing quality and resource usage.
As a result, design of each new color and image management system, tailored for certain operating environments and particular devices, is complicated, time consuming and costly. It is therefore not now practical to design new color and image management systems within short development schedules, and rudimentary color and image management systems, with poor performance, are often used instead.
It is an object of the invention to address the foregoing difficulties by providing for automated construction of a target color and image management system based on modularized libraries of color and image management functions. Thus, the invention allows software developers to create customized color and image management systems for use in color-related applications executing in various operating environments.
According to one aspect, the invention is a configurator which has access to classes of color and image management modules, each class performing specific color and/or image management functionality. Preferably, for example, one class of modules is provided for linearization and gamma correction functionality (such as RGB-to-RGB conversion or CMYK-to-CMYK conversion), another class of modules is provided for color space transformation (such as RGB-to-CMYK conversion), yet another class of modules is provided for image-wide correction (such as histogram equalization or color hue and brightness correction), yet another class of modules is provided for black generation and undercolor removal, still another class of modules is provided to expand input image data resolution to output device resolution, and still yet another class of modules pertains to halftoning functionality. Within each class of modules, a library of plural different modules is provided, with each different module preferably varying in complexity, processor requirements, and processing quality from other modules in the class.
A software developer provides the configurator with user-defined parameters that define the operating environment in which the target color management system is designed to operate, such parameters including memory and processor capabilities, input and output device definition, operating system requirements, identity of operating system, and the like. Based on the operating environment defined by such parameters, the configurator automatically selects appropriate modules from required ones of the classes of modules for use in building a color management system meeting the parameters.
In more specific aspects of the invention, the configurator automatically selects modules to build a color management system by determining which particular color space transformations are needed, based on defined input device and output device parameters. For example, in a situation where the input device is an LCD screen of a hand-held personal digital assistant and the output device is a color ink jet printer, the needed color space transformation is 24-bit RGB (used by the LCD screen) to 4-bit CMYK (used by the ink jet printer). The configurator thereupon builds a path list based on the transformations that are needed, the path list consisting of multiple paths of all possible classes of modules that could realize the needed transformation. For each path in the path list, the configurator then analyzes quality factors corresponding to modules of each class in the path so as to determine which of the paths in the path list produces the highest quality processing while remaining within memory and processor parameters defined by the developer. Preferably, the highest quality operative path is chosen as follows: the configurator includes a pre-assigned weight corresponding to an impact on image quality of each different class of modules. Each different module in each class also includes a quality factor, such as a count of the number of cycles that the module needs to process each pixel in the image (which makes the implicit assumption that more cycles per pixel yields a higher quality image). Then, to determine the path resulting in highest-quality processing, the configurator compares the sums of the quality factors of each module in each path.
In the event that the configurator is not able to choose the highest quality module in each class of modules and still meet the memory and processor constraints, the configurator iterates through the path list and chooses a next lower quality module in the least important class, and so on, until the overall performance constraints can be met.
Once the best quality path that still meets the performance constraints has been selected, the configurator preferably enters a manual edit mode, whereby the developer can alter the automatic module and path selections made by the configurator so as to suit specific needs of the target system.
Finally, the configurator automatically generates code in a higher level language, such as C or C++, so as to implement the selected color management modules. In this regard, the configurator has access to a core module which, according to the code, forms a framework into which each of the selected modules may be inserted so as to obtain the target color and image management system.
By virtue of the foregoing, in which a configurator automatically selects modules from libraries of modules for each of plural classes of color and image management functionality, a configurator according to the present invention provides the ability to support a variety of different kinds of color transformations such as automatic color corrections, color conversions, gray component replacement and halftoning. Further, the modular design of the present invention also provides the ability to support third party color processing modules or module classes, which simply can be inserted into a library of modules or as a new module class so as to operate seamlessly with the system as a whole.
Moreover, by virtue of the automatic nature of the configurator, different system configurations can be built quickly and rapidly, so as to accommodate differences in operating environments, such as the difference between a small-platform Windows CE environment and a large-platform Windows NT environment. Such flexibility is becoming increasingly important, particularly in non-Windows environments or environments where the operating system does not allow large amounts of memory to be used or large amounts of processor power to be devoted to color and/or image management. The modular design of this system also facilitates adaptability of system so that new emerging standards can easily be incorporated.
This brief summary has been provided so that the nature of the invention may be understood quickly. A more complete understanding of the invention can be obtained by reference to the following detailed description of the preferred embodiment thereof in connection with the attached drawings.